const express = require('express');
const registerLogin = require('./router/registerLogin');
const home = require('./router/home');
const cors = require('cors');
// 使用哪个包 引入哪个包
const bodyParser = require('body-parser');
const app = express();
// 托管静态文件
app.use(express.static('public'));
// 解决跨域
app.use(cors());

app.use(bodyParser.urlencoded({extended:true}));
// 中间件本质就是一个函数  三个参数 req res next
// req request 请求对象
// res response 响应对象
// next 放行 调用下一个中间件  下一个路由
// 作用： 当拦截之后可以执行相关的逻辑     修改请求对象  终结response请求  调用下一个中间件 下一个路由
// 中间件分为四类：自定义中间件  第三方中间中间（例如：bodyparser） 内置的中间（例如express.static）  路由器中间件

// 全局中间件
app.use('/banner',(req,res,next)=>{
    console.log('老边很帅！！');
    // res.send('确实是这样')
    // 需求 对于banner的 get请求传个参数 msg  如果msg的内容是老边很帅，返回banner数据，如果msg内容不是老边很帅，则返回确实这样
    // if()
    // http://localhost:3000/banner?msg=老边很帅  如果没有app.use('/',callback)  访问的是banner路由
    // http://localhost:3000/banner?msg=老边很帅 有app.use('/',callback)  不是banner路由 是app.use('/',callback) 
    /* console.log(req.query);
    res.send('确实这样') */
    if(req.query.msg == '老边很帅'){
        req.query.add = '好好学习天天向上！！';
        // 调用下一个路由
        next();
    }else{
        res.send('确实这样')
    }
    // next();//没有条件直接写next() 意味着全部放行

})



// 分类管理路由,使用路由器分类管理路由
// 有很多个接口，路由， 咱们需要分类管理
// 登录注册  首页banner data  四个接口
// login register 一类 放到一个路由器中进行管理
// 首页banner data 一类 供首页使用的接口
// 任何文件都要同入口文件产生直接或者间接的联系才能打包到项目当中
// 引入路由器模块
// 引用
app.use(registerLogin);
app.use(home);


app.listen(3000,err=>{
    if(!err) console.log('服务器启动成功！！');
    else console.log(err);
})